/*
 * 项目名称:    wms-server-jeecg
 * 创建人员:    hansen
 * 创建时间:    2023-08-10
 */
package org.jeecg.modules.business.repertory.entity.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 即时库存VO
 *
 * @author hansen
 * @version 1.0.0
 * @date 2023-08-10 10:43:32
 */
@Data
public class RepertoryVO {
    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * 物料编码
     */
    @ApiModelProperty(value = "物料编码")
    private String materialCode;
    /**
     * 物料名称
     */
    @ApiModelProperty(value = "物料名称")
    private String materialName;
    /**
     * 仓库外键
     */
    @ApiModelProperty(value = "仓库外键")
    @Dict(dictTable = "wms_basic_warehouse", dicText = "code", dicCode = "id")
    private String wmsBasicWarehouseId;
    /**
     * 库存量
     */
    @ApiModelProperty(value = "库存量")
    private BigDecimal stockQuantity;
    /**
     * 可用量
     */
    @ApiModelProperty(value = "可用量")
    private BigDecimal usableQuantity;
    /**
     * 锁定量
     */
    @ApiModelProperty(value = "锁定量")
    private BigDecimal lockQuantity;
    /**
     * 库存单位
     */
    @ApiModelProperty(value = "库存单位")
    @Dict(dictTable = "wms_basic_unit", dicText = "name", dicCode = "id")
    private String wmsBasicUnitId;
    /**
     * 钢卷号
     */
    @ApiModelProperty(value = "钢卷号")
    private String steelCode;
    /**
     * 外径
     */
    @ApiModelProperty(value = "外径")
    private BigDecimal outsideDiameter;
    /**
     * 宽度
     */
    @ApiModelProperty(value = "宽度")
    private BigDecimal width;
    /**
     * 长度
     */
    @ApiModelProperty(value = "长度")
    private BigDecimal length;
    /**
     * 厚度
     */
    @ApiModelProperty(value = "厚度")
    private BigDecimal thickness;
    /**
     * 牌号
     */
    @Dict(dicCode = "wms_mark")
    @ApiModelProperty(value = "牌号")
    private String shopSign;
    /**
     * 外观等级
     */
    @Dict(dicCode = "wms_appearance_rating")
    @ApiModelProperty(value = "外观等级")
    private String appearanceGrade;
    /**
     * 铁损
     */
    @ApiModelProperty(value = "铁损")
    private BigDecimal ironLoss;
    /**
     * 实测片厚
     */
    @ApiModelProperty(value = "实测片厚")
    private BigDecimal measuredThickness;
    /**
     * 实测铁损
     */
    @ApiModelProperty(value = "实测铁损")
    private BigDecimal measuredIronLoss;
    /**
     * 硅钢等级
     */
    @ApiModelProperty(value = "硅钢等级")
    private String siliconGrade;
    /**
     * 刻痕等级
     */
    @ApiModelProperty(value = "刻痕等级")
    private String score;
    /**
     * 原始净重
     */
    @ApiModelProperty(value = "原始净重")
    private BigDecimal originalWeight;
    /**
     * 实称净重
     */
    @ApiModelProperty(value = "实称净重")
    private BigDecimal measuredWeight;
    /**
     * 包装物
     */
    @ApiModelProperty(value = "包装物")
    private String wrappage;
    /**
     * 毛重
     */
    @ApiModelProperty(value = "毛重")
    private BigDecimal grossWeight;
    /**
     * 入库日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "入库日期")
    private Date warehouseDate;
    /**
     * 库存量（辅单位）
     */
    @ApiModelProperty(value = "库存量（辅单位）")
    private BigDecimal stockQuantitySub;
    /**
     * 可用量（辅单位）
     */
    @ApiModelProperty(value = "可用量（辅单位）")
    private BigDecimal usableQuantitySub;
    /**
     * 锁定量（辅单位）
     */
    @ApiModelProperty(value = "锁定量（辅单位）")
    private BigDecimal lockQuantitySub;
    /**
     * 辅单位
     */
    @Dict(dictTable = "wms_basic_unit", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "辅单位")
    private String unitSub;
    /**
     * 销售订单号
     */
    @ApiModelProperty(value = "销售订单号")
    private String saleOrderCode;
    /**
     * 销售订单行号
     */
    @ApiModelProperty(value = "销售订单行号")
    private String saleOrderLineCode;
    /**
     * 生产工单号
     */
    @ApiModelProperty(value = "生产工单号")
    private String productCode;
    /**
     * 生产工单行号
     */
    @ApiModelProperty(value = "生产工单行号")
    private String productLineCode;
    /**
     * 库存状态 正常: normal, 冻结: freeze
     */
    @ApiModelProperty(value = "库存状态")
    @Dict(dicCode = "repertory_status")
    private String status;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 库存组织
     */
    @ApiModelProperty(value = "库存组织")
    private String stockOrg;
    /**
     * 货主类型
     */
    @ApiModelProperty(value = "货主类型")
    @Dict(dicCode = "wms_owner_of_cargo")
    private String ownerType;
    /**
     * 货主编码
     */
    @ApiModelProperty(value = "货主编码")
    private String ownerCode;
    /**
     * 货主名称
     */
    @ApiModelProperty(value = "货主名称")
    private String ownerName;
    /**
     * 库区ID
     */
    @ApiModelProperty(value = "库区外键")
    @Dict(dictTable = "wms_basic_warehouse_area", dicText = "name", dicCode = "id")
    private String wmsBasicWarehouseAreaId;
    /**
     * 批次号
     */
    @ApiModelProperty(value = "批次号")
    private String batchCode;
    /**
     * 库位外键
     */
    @ApiModelProperty(value = "库位外键")
    @Dict(dictTable = "wms_basic_warehouse_area_location", dicText = "code", dicCode = "id")
    private String wmsBasicWarehouseAreaLocationId;
    /**
     * 仓库名称
     */
    private String warehouseName;
    /**
     * 库区名称
     */
    private String areaName;
    /**
     * 库位名称
     */
    private String locationName;
    /**
     * 计量单位名称
     */
    private String unitName;
    /**
     * 物料ID
     */
    private String wmsBasicMaterialId;
    /**
     * 库区标识
     */
    private Boolean areaTag;
    /**
     * 规格型号
     */
    @ApiModelProperty(value = "规格型号")
    private String specification;
    /**
     * 客户
     */
    @ApiModelProperty(value = "客户")
    @Dict(dictTable = "wms_basic_customer", dicText = "code", dicCode = "id")
    private String wmsBasicSupplierId;
    /**
     * 最新入库时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "入库日期")
    private Date newestInboundTime;
    /**
     * 是否合卷
     */
    @ApiModelProperty(value = "是否合卷")
    @Dict(dicCode = "yn_yes_or_no")
    private String isMergeRoll;
    /**
     * 投入批次号
     */
    @ApiModelProperty(value = "投入批次号")
    private String inputBatchCode;
    /**
     * 母卷批次号
     */
    @ApiModelProperty(value = "母卷批次号")
    private String motherBatchCode;
    @ApiModelProperty(value = "产品型号")
    private String productModel;

    @ApiModelProperty(value = "产品类型")
    private String productType;
    /**
     * 计划生产工单号
     */
    @ApiModelProperty(value = "计划生产工单号")
    private String planProductOrderNumber;
    /**
     * 库龄
     */
    @ApiModelProperty("库龄")
    private BigDecimal stockAge;
    @ApiModelProperty(value = "台号")
    private String stationNum;
    @ApiModelProperty(value = "理料方向")
    private String materialDirection;
    @ApiModelProperty(value = "柱形")
    private String pillar;
    /**
     * 解锁量
     */
    @ApiModelProperty(value = "解库量")
    private BigDecimal unlockNumber;
    /**
     * 解锁量(辅单位)
     */
    @ApiModelProperty(value = "解库量(辅单位)")
    private BigDecimal unlockNumberSub;
    /**
     * 库区标识
     */
    private String location;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 载具
     */
    @ApiModelProperty("载具")
    private String vehicle;

    /**
     * 载具编号
     */
    @ApiModelProperty("载具编号")
    private String vehicleCode;

    /**供应商*/
    @ApiModelProperty(value = "供应商")
    @Dict(dictTable = "wms_basic_supplier", dicText = "code", dicCode = "id")
    private String supplier;
}
